package cn.lizemin.observer.version0.entity;

import java.util.ArrayList;
import java.util.List;

/**
 * @author lzm
 * @version 1.0
 * @description: TODO
 * @date 2022/4/20 11:18
 */
public class Shop {

    private String product;

    /**
     * 初始化为ArrayList可在构造器中，也可以在这里
     */
    private List<Buyer> buyers;

    public Shop() {
        this.product = "无货";
        this.buyers = new ArrayList<>();
    }

    /**
     * 将买家注册到到预定清单中
     */
    public void register(Buyer buyer) {
        this.buyers.add(buyer);
    }

    /**
     * 到货后，通知预定清单中的买家
     */
    public void notifyBuyers() {
        //因为这里需要买家收到通知，让买家进一步处理，所以这里需要调用买家的方法
        this.buyers.forEach(buyer -> buyer.buy(this.product));

    }

    /**
     * 商品进货
     * @param product
     */
    public void setProduct(String product) {
        this.product = product;
    }

    /**
     * 商品出货
     * @return
     */
    public String getProduct() {
        return this.product;
    }


}
